package cn.sys.service;

import cn.sys.controller.dto.SearchDTO;
import cn.sys.entity.Dormitory;
import cn.sys.util.ResultData;

import java.util.List;

public interface DormitoryService {
    /**
     * 获取宿舍信息，需要用户的id
     */
    ResultData findDormitoryInfoByStuId(Integer stuId);

    /**
     * 宿舍信息统计，用于封装得到的宿舍信息业务
     */
    ResultData statisticDormitoryInfo();

    /**
     * 宿舍位置信息查询业务
     */
    ResultData findAllDormitoryPostion();

    /**
     * 宿舍信息查询业务，先判断学生是否存在
     */
    ResultData findDormitoryChooseable(SearchDTO searchDTO);

    /**
     * 添加学生到寝室业务
     */
    ResultData addStuToDormitory(Integer dorId, Integer stuId, Integer state);

    /**
     * 添加宿舍信息
     */
    ResultData addDormitory(Dormitory dormitory);

    /**
     * 查询宿舍位置以及宿舍具体信息
     */
    ResultData findDormitoryAndPostions();

    /**
     * 根据宿舍id查询宿舍信息
     */
    ResultData findDormitoryByDorId(Integer dorId);

    /**
     * 修改宿舍信息，除前端传来的数据外，还需要添加修改时间、修改剩余床位数、管理员id
     */
    ResultData updateDormitoryInfo(Dormitory dormitory);

    /**
     * 查询所有的宿舍信息
     */
    ResultData findAllDormitoryAndPosition();

    /**
     * 根据查询条件查询寝室列表
     */
    ResultData findDormitoryListBySearch(SearchDTO searchDTO);

    /**
     * 根据寝室id查询学生列表和寝室信息
     */
    ResultData findDormitoryAndStudentListByDorId(SearchDTO searchDTO);
}
